package com.rsk.service.impl;

import com.rsk.dao.SysCompanysRepository;
import com.rsk.dao.extend.SysCompanysExtend;
import com.rsk.dao.utils.SearchDataUtils;
import com.rsk.entity.SysCompanys;
import com.rsk.service.SysCompanysService;
import com.rsk.utils.tools.PageUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;
import java.util.Map;

public class SysCompanysServiceImpl implements SysCompanysService {

    @Autowired
    private SysCompanysRepository sysCompanysRepository;

    @Autowired
    private SysCompanysExtend sysCompanysExtend;

    @Autowired
    private SearchDataUtils searchDataUtils;

    @Transactional
    @Override
    public int delSysCompanys(Long id, Long operatorUser) {
        return sysCompanysRepository.delSysCompanys(id,operatorUser);
    }

    @SuppressWarnings({ "unchecked", "rawtypes" })
    @Override
    public List<Map> selectSysCompanys(Long companyAttribute, String companyName, Long companyTypeId, Integer nowPage, Integer pageSize) {

        Map<String, Object> map = sysCompanysExtend.selectCourseCategoryByPage(companyAttribute, companyName, companyTypeId);
        String sql = map.get("sql").toString();
        Map<String,Object> paramMap = (Map<String, Object>) map.get("paramMap");
        List<Map> list  = searchDataUtils.search(sql, paramMap, Map.class);
        return  list;
    }


    @Transactional
    @Override
    public int saveSysCompanys(String companyName, String companyTypeId, Long companyAttribute, String companyCode, Long operatorUser) {

        SysCompanys companys = new SysCompanys();
        companys.setCompanyName(companyName);
        companys.setCompanyTypeId(companyTypeId);
        companys.setCompanyAttribute(companyAttribute);
        companys.setCompanyCode(companyCode);
        companys.setOperatorUser(operatorUser);
        sysCompanysRepository.saveAndFlush(companys);
        return 1;
    }


}